#pragma once

#include <boost/ptr_container/ptr_vector.hpp>

#include "../../../helpers/graphic/CardControl.h"
#include "../../../../utils/gui/Control.h"
#include "../../../../domain/models/Card.h"
#include "../../../../domain/models/CardsCollection.h"

namespace Views {
	namespace Helpers {
		namespace Graphic {
			namespace Accusation {
				class AccusationCardsDialog: public Utils::GUI::Control
				{
				protected:
					typedef boost::signal<void (Cards::CardSet)> OnCardsSet;
					OnCardsSet cardsSetEvent;

					Cards::PlayerCard* player_card;
					Cards::WeaponCard* weapon_card;
					Cards::RoomCard* room_card;

				public:
					AccusationCardsDialog(Cards::CardsCollection cards);
					
					boost::signals::connection doOnCardsSet(const OnCardsSet::slot_function_type&);
				private:
					void submitCards();
					void setCard(Cards::Card**, Cards::Card*);
				};
			}
		}
	}
}
